package com.tangerine.bd;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import android.database.Cursor;
import com.tangerine.entidades.Perfil;

public class DbHandlerPerfil{
	private static DbHandler bd;
	private static final String TABLE_PERFIL = "PERFIL";
	// Table FAVORITO
	private static final int CAMPO_ID_PERFIL 		= 0; //ID_PERFIL
	private static final int CAMPO_FECHA_CREACION	= 1; //FECHA_CREACION
	private static final int CAMPO_DESCRIPCION		= 2; //DESCRIPCION
	
	//Constructor
	public DbHandlerPerfil() {
		bd = DbHandler.getInstance();
	}
	
	public List<Perfil> cargarPerfil() throws SQLException {		
		List<Perfil> list = new ArrayList<Perfil>();
		
		String selectQuery = "SELECT * FROM " + TABLE_PERFIL;
		
		Cursor cursor = bd.ejecutarConsulta(selectQuery); 
		
		// looping through all rows and adding to list
		if (cursor.moveToFirst()) {
			do {
				Perfil auxPerfil = new Perfil();
				
				auxPerfil.setIdPerfil(Integer.parseInt(cursor.getString(CAMPO_ID_PERFIL)));
				auxPerfil.setFechaCreacion(cursor.getString(CAMPO_FECHA_CREACION));
				auxPerfil.setDescripcion(cursor.getString(CAMPO_DESCRIPCION));
				
				list.add(auxPerfil);
			} while (cursor.moveToNext());
		}
		cursor.close();
		return list;
	}
	
	public void insertarPerfil(Perfil auxPerfil) throws SQLException {
		String insertRegister = "INSERT INTO " + TABLE_PERFIL + " (ID_PERFIL, FECHA_CREACION, DESCRIPCION) VALUES(" +
								Integer.toString(auxPerfil.getIdPerfil()) + ", " + //ID_PERFIL
								"DATETIME('now'), \"" +
								auxPerfil.getDescripcion() + "\")";//DESCRIPCION
		
		bd.ejecutarInsert(insertRegister);
	}
	
	public int obtenerMaximoIdPerfil() throws SQLException {
		int iMaxIdPerfil = 0;
		String selectQuery = "SELECT IFNULL(MAX(ID_PERFIL), 0) FROM " + TABLE_PERFIL;
		
		Cursor cursor = bd.ejecutarConsulta(selectQuery); 
		
		if(cursor.moveToFirst()) {
			do {
				iMaxIdPerfil = Integer.parseInt(cursor.getString(0));
			} while (cursor.moveToNext());
		}
		return iMaxIdPerfil;
	}
	
	public void eliminarPerfil(Perfil auxPerfil) throws SQLException {
		String deleteRegister = "DELETE FROM " + TABLE_PERFIL + " WHERE ID_PERFIL = " 
				+ Integer.toString(auxPerfil.getIdPerfil());
		
		bd.ejecutarDelete(deleteRegister);
	}
}